// const StyleLintPlugin = require('stylelint-webpack-plugin')
// // const CopyWebpackPlugin = require('copy-webpack-plugin')
// const path = require('path')

// function resolve (dir) {
//   return path.join(__dirname, dir)
// }

// // const BASE_URL = 'https://api.local.hzmantu.com'

// module.exports = {
//   publicPath: './', // 静态资源引用路径'./
//   outputDir: 'dist', // 打包文件放置位置
//   assetsDir: 'static', // 静态资源文件夹
//   indexPath: 'index.html', // 入口文件位置，相对于outputDir
//   lintOnSave: false, // eslint 错误处理，true表示对待eslint错误为warnings，warnings不会导致编译失败
//   productionSourceMap: false, // 生产环境不关闭source map
//   // devServer: {
//   //   host: '0.0.0.0'
//   // },
//   chainWebpack: config => {
//     config.plugin('stylelint')
//       .use(StyleLintPlugin, [{
//         configFile: '.stylelintrc.js',
//         files: ['**/*.scss', '**/*.vue'],
//         fix: true,
//         formatter: 'verbose'
//       }])
//       .end()
//       // 添加别名
//     config.resolve.alias
//       .set('@', resolve('src'))
//       .end()
//     config.plugin('html')
//       .tap(args => {
//         args[0].title = '科友设备维修管理系统'
//         return args
//       })
//   },
//   devServer: {
//     port: '8088',
//     disableHostCheck: true
//   },
// }
const StyleLintPlugin = require('stylelint-webpack-plugin')
const path = require('path')

function resolve(dir) {
  return path.join(__dirname, dir)
}

module.exports = {
  publicPath: './',
  outputDir: 'dist',
  assetsDir: 'static',
  indexPath: 'index.html',
  lintOnSave: false,
  productionSourceMap: false,

  chainWebpack: config => {
    config.plugin('stylelint')
      .use(StyleLintPlugin, [{
        configFile: '.stylelintrc.js',
        files: ['**/*.scss', '**/*.vue'],
        fix: true,
        formatter: 'verbose'
      }])
      .end()

    config.resolve.alias
      .set('@', resolve('src'))
      .end()

    config.plugin('html')
      .tap(args => {
        args[0].title = '科友设备维修管理系统'
        return args
      })
  },

  devServer: {
    port: '8018',
    disableHostCheck: true,
    proxy: {
      // 第一个API服务代理
      '/api': {
        target: process.env.VUE_APP_BASE_URL, // 目标服务器地址
        changeOrigin: true,               // 是否改变源
        secure: false,                   // 如果是https接口，需要配置这个参数
        pathRewrite: {
          '^/api': ''                    // 重写路径，去掉/api前缀
        }
      },

      // 第二个API服务代理
      '/file-upload': {
        target: process.env.VUE_APP_IMG_URL,
        changeOrigin: true,
        pathRewrite: {
          '^/file-upload': ''
        }
      },

      // 第三个API服务代理（WebSocket）
      '/ws': {
        target: 'ws://websocket.example.com',
        ws: true,                        // 代理WebSocket
        changeOrigin: true,
        pathRewrite: {
          '^/ws': ''
        }
      },

      // 更多代理服务可以继续添加...
      '/upload': {
        target: 'http://file.example.com',
        changeOrigin: true,
        pathRewrite: {
          '^/upload': '/api/upload'
        }
      }
    }
  }
}
